package co.yixiang.yshop.module.product.controller.app.product.vo;

import co.yixiang.yshop.module.product.controller.admin.producttag.vo.ProductTagViewRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 商品dto
 * </p>
 *
 * @author hupeng
 * @date 2023-6-12
 */
@Data
@Schema(description = "用户 APP - 商品详情vo")
public class AppProductVo {

    @Schema(description = "商品信息列表", requiredMode = Schema.RequiredMode.REQUIRED)
    private List<AppStoreProductRespVo> goodList = new ArrayList<>();

    @Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED)
    private String priceName = "";

    @Schema(description = "产品规格", requiredMode = Schema.RequiredMode.REQUIRED)
    private List<AppStoreProductAttrQueryVo> productAttr = new ArrayList<>();

    @Schema(description = "属性集合", requiredMode = Schema.RequiredMode.REQUIRED)
    private Map<String, AppStoreProductAttrValueVo> productValue = new LinkedHashMap<>();

    @Schema(description = "评论信息", requiredMode = Schema.RequiredMode.REQUIRED)
    private AppStoreProductReplyQueryVo reply;

    @Schema(description = "回复渠道", requiredMode = Schema.RequiredMode.REQUIRED)
    private String replyChance;

    @Schema(description = "回复数", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long replyCount;

    @Schema(description = "状态（0：未上架，1：上架）", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer isShow;


    @Schema(description = "商品信息", requiredMode = Schema.RequiredMode.REQUIRED)
    private AppStoreProductRespVo storeInfo;

    @Schema(description = "腾讯地图key", requiredMode = Schema.RequiredMode.REQUIRED)
    private String mapKey;


    @Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer uid = 0;

    @Schema(description = "模版名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String tempName;

    @Schema(description = "优惠信息", requiredMode = Schema.RequiredMode.REQUIRED)
    private String couponSplicing;

    @Schema(description = "活动id")
    private String campaignId;

    @Schema(description = "活动名称")
    private String campaignName;

    @Schema(description = "活动介绍")
    private String campaignRemark;

    @Schema(description = "商品标签")
    private ProductTagViewRespVO tag;
}
